
export default {
  // TOKENS
  AAVE: {
    1: "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9",
    42: "0xE350F11CdB9fEeC9259aBcD3D13ee92A65e005f8",
  },
  REP: {
    1: "0x221657776846890989a759ba2973e427dff5c9bb",
    42: "0xcf23c73e32680986F98022A25De8F506bB0Eb440", // Named NMR
  },
  BAL: {
    1: "0xba100000625a3754423978a60c9317c58a424e3d",
    42: "0x26f1D70ef9b355485a599924D690001ba0c7a573",
  },
  YFI: {
    1: "0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e",
    42: "0x13a501976Fad60E547BDe3b7dC5cFeFaD507b93e",
  },
  COMP: {
    1: "0xc00e94cb662c3520282e6f5717214004a7f26888",
    42: "0x5e5b4f6f598d8fed3fd41ab915a446e80879c501",
  },
  KNC: {
    1: "0xdd974d5c2e2928dea5f71b9825b8b646686bd200",
    42: "0xfC370E1B3583d668BC18C7B030B697bF99f20A5f",
  },
  LEND: {
    1: "0x80fB784B7eD66730e8b1DBd9820aFD29931aab03",
    42: "0x8282B03C0C96C576c210E81c500042b5b5795104",
  },
  LRC: {
    1: "0xbbbbca6a901c926f240b89eacb641d8aec7aeafd",
    42: "0xd56F379333e7D06dC8cfD576eba34E7a667f2946",
  },
  MKR: {
    1: "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2",
    42: "0x66E604114E97B9099b8B8FbB3DD59AD180132b8B",
  },
  REN: {
    1: "0x408e41876cccdc0f92210600ef50372656052a38",
    42: "0xB15C923E9E80832cE2Cc35AB9a249b82740Ad2E8",
  },
  SNX: {
    1: "0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f",
    42: "0x63B6cE68Ae8f3Fb3D0B7490d1C60634F403e6E13",
  },
  USDC: {
    1: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
    42: "0x15758350DECEA0E5A96cFe9024e3f352d039905a",
  },
  WETH: {
    1: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    42: "0xd0A1E359811322d97991E03f863a0C30C2cF029C",
  },
  WBTC: {
    1: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
    42: "0x595f8DaB94b9c718cbf5c693cD539Fd00b286D3d",
  },
  DAI: {
    1: "0x6b175474e89094c44da98b954eedeac495271d0f",
    42: "0xF091720Dea579d7Eec922d8B2A3A67ba522CCf6D",
  },
  UNI: {
    1: "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984",
    42: "0x3d07e0780fd534759dbf1d7e3d92f454b783c4f4",
  },
  STETH: {
    1: "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
    42: "0x4b7FCBC11BB45075b9A1F953128C09bC97D6a0D7",
  },

  // AAVE V2

  // Aave addresses https://docs.aave.com/developers/deployed-contracts/deployed-contracts
  AAVE_LENDING_POOL_ADDRESSES_PROVIDER: {
    1: "0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5",
    42: "0x88757f2f99175387aB4C6a4b3067c77A695b0349",
  },
  AAVE_PROTOCOL_DATA_PROVIDER: {
    1: "0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d",
    42: "0x3c73A5E5785cAC854D468F727c606C07488a29D6",
  },

  // UNISWAP

  UNISWAP_FACTORY: {
    1: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
    42: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
  },

  UNISWAP_ROUTER: {
    1: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
    42: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
  },

  WETH_DAI_UNI_PAIR: {
    1: "0xa478c2975ab1ea89e8196811f51a7b7ade33eb11",
    42: "0x0a9f9974c3db9bc5ffd4c1de13651277c264dad4",
  },

  WETH_DAI_UNI_STAKING_REWARD: {
    1: "0xa1484C3aa22a66C62b77E0AE78E15258bd0cB711",
    42: "0xb7fe5bf80d7c39d3322294a233af41e66a8d4c13",
  },

  WETH_WBTC_UNI_PAIR: {
    1: "0xBb2b8038a1640196FbE3e38816F3e67Cba72D940",
    42: "0x649c5ffd6e1b67fba819faf0285e6c1dedf808b5",
  },

  WETH_WBTC_UNI_STAKING_REWARD: {
    1: "0xCA35e32e7926b96A9988f61d510E038108d8068e",
    42: "0xbe53a06DAD27bddA66981361504e93cba9E55799",
  },

  SUSHISWAP_ROUTER: {
    1: "0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F",
    42: "",
  },

  BALANCER_EXCHANGE_PROXY: {
    1: "0x3E66B66Fd1d0b02fDa6C811Da9E0547970DB2f21",
    42: "0x4e67bf5bD28Dd4b570FBAFe11D0633eCbA2754Ec",
  },

  // Governance

  AAVE_PROTO_GOVERNANCE: {
    1: "0x8a2efd9a790199f4c94c6effe210fce0b4724f52",
    42: "0xb2D400Bd6A261fB2cC553124374ee2592bea3B27",
  },
  COMP_GOVERNOR_ALPHA: {
    1: "0xc0da01a04c3f3e0be433606045bb7017a7323e38",
    42: "0xf37Fb64445daC3dF40cA36B7DC9172f7E8f8062B",
  },
  UNI_GOVERNOR_ALPHA: {
    1: "0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F",
    42: "0xa10Be89E524763e0D34c31Ea7301c5579064d5f8",
  },

  // Oracles

  ETH_ORACLE_PROXY: {
    // This is production, not staging mainnet
    1: "0x97C3e595e8f80169266B5534e4d7A1bB58BB45ab",
    42: "0xE2cFc870edFb863beF5057ed19cb8F904C84100C",
  },
  DAI_ORACLE_PROXY: {
    // This is production, not staging mainnet
    1: "0xa0485EbFE8854855C68B6Fa058AEe1B62A66Ea9d",
    // This oracle is manipulatable, it is not reading from an actual data source
    42: "0x2890830E40CB2E1e82245b359491a8F8E7560a4b",
  },
  BTC_ORACLE_PROXY: {
    // This is production, not staging mainnet
    1: "0xbf63446ecF3341e04c6569b226a57860B188edBc",
    42: "0x46c2f93470d9367792806f199E5Fc8d1896F16E1",
  },
  USDC_ORACLE: {
    // This is set to $1
    1: "0x7561E6D8301cDac56787E203b06E98427a36B1e0",
    42: "0x7970AC597e74829DECe89AFCCE608eb716cAc8cC",
  },

  // Admin

  MULTI_SIG_OWNER: {
    1: "0xF8523c551763FE4261A28313015267F163de7541",
  },
  ONE_INCH_SPENDER_ADDRESS: {
    1: "0xE4C9194962532fEB467DCe8b3d42419641c6eD2E",
  },
  ONE_INCH_EXCHANGE_ADDRESS: {
    1: "0x11111254369792b2ca5d084ab5eea397ca8fa48b",
  },
  CURVE_ETH_STETH_EXCHANGE: {
    1: "0xDC24316b9AE028F1497c275EB9192a3Ea0f67022",
  },
  CURVE_WETH_STETH_EXCHANGE: {
    1: "0x828b154032950C8ff7CF8085D841723Db2696056",
  },
  ZERO_EX_EXCHANGE: {
    1: "0xDef1C0ded9bec7F1a1670819833240f027b25EfF",
  },
  AAVE_MIGRATION_PROXY: {
    1: "0x317625234562B1526Ea2FaC4030Ea499C5291de4",
    42: "0x7c24e875D3ea8bc19cEEC6d8BcF26aA69bfFDC4C",
  },
  HUMAN_FRIENDLY_NAMES: {
    1: "main-net",
    42: "kovan",
    50: "test-rpc",
  },

  // WHALES (for forked mainnet testing)

  USDC_WHALE: "0x47ac0Fb4F2D84898e4D9E7b4DaB3C24507a6D503",
  DAI_WHALE: "0x47ac0Fb4F2D84898e4D9E7b4DaB3C24507a6D503",
  WETH_WHALE: "0x2f0b23f53734252bda2277357e97e1517d6b042a",
  WBTC_WHALE: "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
  STETH_WHALE: "0xdc24316b9ae028f1497c275eb9192a3ea0f67022",

} as any;

export const DEPENDENCY = {
  // Tokens
  AAVE: "AAVE",
  SNX: "SNX",
  LEND: "LEND",
  COMP: "COMP",
  MKR: "MKR",
  REN: "REN",
  KNC: "KNC",
  LRC: "LRC",
  BAL: "BAL",
  YFI: "YFI",
  REP: "REP",
  DAI: "DAI",
  UNI: "UNI",
  WBTC: "WBTC",
  WETH: "WETH",

  // External Protocols
  AAVE_LENDING_POOL_ADDRESSES_PROVIDER: "AAVE_LENDING_POOL_ADDRESSES_PROVIDER",
  AAVE_PROTOCOL_DATA_PROVIDER: "AAVE_PROTOCOL_DATA_PROVIDER",
  UNISWAP_FACTORY: "UNISWAP_FACTORY",
  UNISWAP_ROUTER: "UNISWAP_ROUTER",
  WETH_DAI_UNI_PAIR: "WETH_DAI_UNI_PAIR",
  WETH_DAI_UNI_STAKING_REWARD: "WETH_DAI_UNI_STAKING_REWARD",
  WETH_WBTC_UNI_PAIR: "WETH_WBTC_UNI_PAIR",
  WETH_WBTC_UNI_STAKING_REWARD: "WETH_WBTC_UNI_STAKING_REWARD",
  SUSHISWAP_ROUTER: "SUSHISWAP_ROUTER",
  BALANCER_EXCHANGE_PROXY: "BALANCER_EXCHANGE_PROXY",

  // Oracles
  ETH_ORACLE_PROXY: "ETH_ORACLE_PROXY",
  DAI_ORACLE_PROXY: "DAI_ORACLE_PROXY",
  BTC_ORACLE_PROXY: "BTC_ORACLE_PROXY",

  // Governance
  AAVE_PROTO_GOVERNANCE: "AAVE_PROTO_GOVERNANCE",
  UNI_GOVERNOR_ALPHA: "UNI_GOVERNOR_ALPHA",
  COMP_GOVERNOR_ALPHA: "COMP_GOVERNOR_ALPHA",

  // Admin
  MULTI_SIG_OWNER: "MULTI_SIG_OWNER",
  ONE_INCH_SPENDER_ADDRESS: "ONE_INCH_SPENDER_ADDRESS",
  ONE_INCH_EXCHANGE_ADDRESS: "ONE_INCH_EXCHANGE_ADDRESS",
  AAVE_MIGRATION_PROXY: "AAVE_MIGRATION_PROXY",

  // System Contracts
  CONTROLLER: "Controller",
  BASIC_ISSUANCE_MODULE: "BasicIssuanceModule",
  NAV_ISSUANCE_MODULE: "NavIssuanceModule",
  SET_TOKEN_CREATOR: "SetTokenCreator",
};
